summaryrefslogtreecommitdiff
path: root/ui/routes/(app)/ch/[channel]/+page.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'ui/routes/(app)/ch/[channel]/+page.svelte')
-rw-r--r--ui/routes/(app)/ch/[channel]/+page.svelte25
1 files changed, 9 insertions, 16 deletions
diff --git a/ui/routes/(app)/ch/[channel]/+page.svelte b/ui/routes/(app)/ch/[channel]/+page.svelte
index 095e66a..c8507cc 100644
--- a/ui/routes/(app)/ch/[channel]/+page.svelte
+++ b/ui/routes/(app)/ch/[channel]/+page.svelte
@@ -3,24 +3,17 @@
import { page } from '$app/state';
import ActiveChannel from '$lib/components/ActiveChannel.svelte';
import MessageInput from '$lib/components/MessageInput.svelte';
- import { channelsList, channelsMetaList, currentUser, logins, messages } from '$lib/store';
+ import { runs } from '$lib/runs.js';
import * as api from '$lib/apiServer';
- let channel = $derived(page.params.channel);
- let messageRuns = $derived(
- $messages.inChannel(channel).map(({ sender, messages }) => {
- let senderName = $derived($logins.get(sender));
- let ownMessage = $derived($currentUser !== null && $currentUser.id === sender);
-
- return {
- sender: senderName,
- ownMessage,
- messages
- };
- })
- );
+ const { data } = $props();
+ const { session } = data;
let activeChannel;
+ const channel = $derived(page.params.channel);
+ const messages = $derived(session.messages.filter((message) => message.channel === channel));
+ const messageRuns = $derived(runs(messages, session.currentUser));
+
function inView(parentElement, element) {
const parRect = parentElement.getBoundingClientRect();
const parentTop = parRect.top;
@@ -49,12 +42,12 @@
const lastInView = getLastVisibleMessage();
if (lastInView) {
const at = DateTime.fromISO(lastInView.dataset.at);
- $channelsMetaList.updateLastReadAt(channel, at);
+ session.local.updateLastReadAt(channel, at);
}
}
$effect(() => {
- const _ = $messages.inChannel(channel);
+ const _ = session.messages;
setLastRead();
});